# -*- coding: utf-8 -*-
# __author__ : "初一丶"
# __time__ : 2018/8/3 17:39
# __file__ : data_type.py

""" Python常用数据类型
        1.Number(数字)
        2.String(字符串)
        3.List(列表)
        4.Tuple(元组)
        5.Set(集合)
        6.Dictionary(字典)
    不可变类型 ：  Number  String  Tuple
    可变类型 ：  List  Dictionary  Set
"""

"""
 1.Number
    int（整型）
    float（浮点型）
    complex（复数）
    long（长整型，也可以表示八进制和十六进制）
"""
101, -102, 0, 1 + 2, 10/4                    # 整数
1.01, -1.02, 1 + 2.0, 10.0/4, .14, 1.        # 浮点数
123 - 11j, 144 + 15J, 13.14 + 5.20j          # 复数, 也可以通过complex(real, image)来创建, real:复数实部, image:虚部
0o11 (9), 0x11 (17), 0b1001                  # 分别是 八进制(0o开头,后跟0~7), 十六进制(0x开头,后跟0~9,A~F,a~f), 二进制(0b开头,后跟0~1)

# int(string, base)                            # 将字符串转化为整数，base为进制数

# ------------------------------------------------------------------------------
# 丨   ↓   丨  2进制        丨  8进制          丨  10进制         丨 16进制 丨
# ------------------------------------------------------------------------------
# 丨 2进制  丨      -       丨 bin(int(x,8))  丨 bin(int(x,10)) 丨 bin(int(x,16))
# ------------------------------------------------------------------------------
# 丨 8进制  丨 oct(int(x,2))丨      -         丨 oct(int(x,10)) 丨 oct(int(x,16))
# ------------------------------------------------------------------------------
# 丨 10进制 丨  int(x,2)    丨   int(x,8)     丨       -        丨 int(x,16)
# ------------------------------------------------------------------------------
# 丨 16进制 丨 hex(int(x,2))丨   hex(int(x,8))丨       -        丨    -

float('inf'), float('-inf'), float('nan')    # 无穷大, 无穷小, 非数



"""
    字符串的操作
"""
s = ''                                  # 空字符串
s = "i'm Tom"                           # 双引号和单引号相同
s = """Love"""                          # 三重双引号字符串,一般用于函数说明
content = """ Do one thing at time,     
                and do well."""
                                        # 三重引号编写多行代码, 并在代码换行处嵌入换行字符\n
s = r'\temp'                            # 字符串加r,标识该字符串不会被转义
s = b'love'                             # python3.x 中标识字节字符串
s = u'love'                             # python2.6 中的Unicode字符串
# --- 字符串拼接 ---
addr = 'python' + 'tab' + '.com'
','.join('a', 'b', 'c')                 # 输出:a,b,c
'my name is %s' % 'tom'                 # 字符串格式化  输出:my name is tome
'my %s is %s' % ('name', 'tom')
    # --- 另类拼接 ---
name = 'wang' 'hong'                    # 单行,name = 'wanghong'
name = 'wang' \
        'hong'                          # 多行,name = 'wanghong'

# ===================       处理字符串的常用函数        ===================




# ===================           字符串转换           ===================
int('42'), str(42)                      # 输出42，'42'
float('3.14'), str(3.14)                # 输出3.14，'3.14'
ord('s'), chr(115)                      # 返回对应的 ASCII 数值，或者 Unicode 数值,输出115， 's'
int('1001', 2)                          # 字符串转换成2进制,输出：9
bin(13), oct(13), hex(13)               # 将证书转换为二进制/八进制/十六进制字符串

